The proliferation of client computing devices—such as smart phones and tablets—has drastically changed the manner in which software applications are designed and executed. Some software applications—such as games—are designed to run independently on the client computing device and require little or no interaction with a server. Other software applications—such as photo sharing applications—rely on accessing server computing devices that are designed to interact with the software applications. Notably, implementing and managing such server computer devices can be complicated and expensive, and often exceeds the resources that are available to the developers. To address this problem, “cloud computing” services were created, which provide scalable computing resources that remove the necessity for a developer to implement his or her own server computing devices.
Despite helping to cure some of the problems set forth above, cloud computing environments can, in some cases, create bottlenecks and degrade overall performance on both the client and server ends. This notion especially applies in cloud computing environments that include a vast number of client computing devices (e.g., one hundred million) that rely on a relatively small number of server computing devices (e.g., ten thousand). Consider, for example, a popular software application that executes on each of the client computing devices and is configured to rely on offloading work to the server computing devices. Notably, if the software application is poorly-written, and causes, for example, a large number of extraneous requests to be inefficiently issued to the server computing devices, then the server computing devices can become overloaded and cause performance degradations across the board.
One approach used to mitigate this problem involves implementing software on the server computing devices that causes them to ignore or defer the extraneous requests that are issued by the client computing devices. However, this approach still does not prevent the client computing devices from issuing the extraneous requests, and, as a result, both the client computing devices and the server computing devices continue to wastefully consume resources. Moreover, such extraneous requests can cause crowding and prevent the server computing devices from appropriately serving other software applications that are properly functioning. Consequently, users who do not have the poorly-written software application installed on their client computing devices—but have other well-written software applications installed on their client computing devices that also access the cloud computing services—can be negatively impacted.